home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 4 / Apprentice-Release4.iso / Source Code / Libraries / PNL Libraries / Assembly / NoForceQuit.p < prev    next >
Encoding:
Text File  |  1994-11-24  |  635 b   |  36 lines  |  [TEXT/CWIE]

  1. unit NoForceQuit;
  2.  
  3. interface
  4.  
  5.     procedure InitNoForceQuit;
  6.     procedure FinishNoForceQuit;
  7.  
  8. { In the asm file: }
  9.     procedure AsmInitNoForceQuit (sys6byte: ptr; oldsyserror: longInt);
  10.     procedure NoForceQuit;
  11.  
  12. implementation
  13.  
  14.     uses
  15.         Traps;
  16.  
  17.     var
  18.         sys6byte: ptr;
  19.         oldsyserror: longInt;
  20.  
  21.     procedure InitNoForceQuit;
  22.     begin
  23.         oldsyserror := GetTrapAddress(_SysError);
  24.         sys6Byte := NewPtrSys(6);
  25.         AsmInitNoForceQuit(sys6byte, oldsyserror);
  26.         SetTrapAddress(ord(@NoForceQuit), _SysError);
  27.     end;
  28.  
  29.     procedure FinishNoForceQuit;
  30.     begin
  31.         BlockMove(@oldsyserror, ptr(ord(sys6byte) + 2), 4);
  32.         FlushDataCache;
  33.         FlushInstructionCache;
  34.     end;
  35.  
  36. end.